Divide:
R0 is Divident
R1 is Divisor
R0 will be the remainder
R2 will be the quotient

	MOV R2 #0			; Quotient
Loop
	CMP R1 #0			; Test for divide by Zero
	BEQ Err
	CMP R0 R1			; Is Divident greater than Divisor
	BLT Done			; If so, it is done
	ADD R2 R2 #1		; add one to quotient
	SUB R0 R0 R1		; subtract one time divisor from divident
	B   Loop			; Next turn
Err
	MOV R3 #OxFFFFFFFF	; Error flag, i.e. quotient = -1
Done


Logical AND
Both non zero is true, return a 1.

; ANL R2 R0 R1		;R2=(R0 and R1)
	
	CMP R0 #0
	BEQ False
	CMP R1 #0
	BEQ False
	MOV R2 #1		; It is True
	B End
False
	MOV R2 #0		; It is false
End


Logical OR
One non zero is true, return a 1.

; ORL R2 R0 R1		;R2=(R0 or R1)
	
	CMP R0 #0
	BNE True
	CMP R1 #0
	BNE True
	MOV R2 #0		; It is False
	B End
True
	MOV R2 #1		; It is True
End


Logical XOR
One non zero other zero, or vice versa is true, return a 1.

; XRL R2 R0 R1		;R2=(R0 xor R1)
	
	CMP R0 #0
	BNE R0true
	CMP R1 #0		; R0 is false
	BNE True		; if R1 is true, then TRUE
	B False			; otherwise FALSE
R0true
	CMP R1 #0		; R0 is true
	BEQ True		; if R1 is false, then TRUE
	B False			; otherwise FALSE
False
	MOV R2 #0		; It is False
	B End
True
	MOV R2 #1		; It is True
End


Logical NOT
zero is false, return a 1.

; XRL R2 R0		;R2=(not R0)
	
	CMP R0 #0
	BEQ True
;False
	MOV R2 #0		; It is False
	B End
True
	MOV R2 #1		; It is True
End


